package org.seedltd.upms.service.detection;

import java.util.Date;
import java.util.List;

import org.seedltd.core.base.IBaseService;
import org.seedltd.upms.model.detection.entity.DetectionOrderTracing;
import org.seedltd.upms.model.detection.vo.DetectionOrderTracingVO;

/**
 * 订单状态节点业务接口
 * 
 * @author laizuan
 * @since 2021/08/02
 * @version 1.0
 */
public interface DetectionOrderTracingService extends IBaseService<DetectionOrderTracing> {

    /**
     * 新增数据
     *
     * @param orderId
     *            订单主键
     * @param defaultStatus
     *            默认状态
     * @return 主键
     */
    void addByOrderId(Long orderId, String defaultStatus);

    /**
     * 修改流程状态
     * 
     * @param orderId
     *            订单主键
     * @param flowCode
     *            状态代码
     * @param operatorUser
     *            操作用户名
     * @param flowTime
     *            状态时间
     * @param updateBefore
     *            是否重之前的状态
     * @param remark
     *            备注
     * @return
     */
    boolean updateTracing(Long orderId, Integer flowCode, String operatorUser, Date flowTime, boolean updateBefore,
        String remark);

    /**
     * 删除数据
     *
     * @param orderId
     *            订单主键
     * @return 是否删除成功。 true: 成功，false:失败
     */
    boolean delete(Long orderId);

    /**
     * 获取订单流程节点
     * 
     * @param orderId
     *            订单主键
     * @return 列表数据
     */
    List<DetectionOrderTracingVO> listByOrderId(Long orderId);
}